// src/utils/storage.js
import Cookies from 'js-cookie';

// 封装 Cookie 操作（统一管理，后续修改只需改这里）
export const Cookie = {
  // 读取指定 Cookie
  get: (name) => Cookies.get(name),

  // 读取所有 Cookie
  getAll: () => Cookies.get(),

  // 设置 Cookie（支持过期时间、路径等配置）
  set: (name, value, options = {}) => {
    // 默认配置：7天过期，全路径可用
    const defaultOptions = {
      expires: 7,
      path: '/'
    };
    Cookies.set(name, value, { ...defaultOptions, ...options });
  },

  // 删除 Cookie
  remove: (name, options = { path: '/' }) => {
    Cookies.remove(name, options);
  },

  // 专门读取 token（常用操作单独封装，简化使用）
  getKoaSess: () => {
    try {
      // 1. 获取 koa:sess 的值（JSON 字符串）
      const koaSessStr = Cookies.get('koa:sess');
      if (!koaSessStr) return null;

      // 2. 解析 JSON 字符串（Koa 会序列化 Session 数据）
      const koaSess = JSON.parse(koaSessStr);
      return koaSess;
    } catch (error) {
      console.error('解析 koa:sess 失败：', error);
      return null; // 解析失败（如加密、格式错误）返回 null
    }
  },

  // 清除 token
  removeToken: () => {
    Cookies.remove('token', { path: '/' });
  }
};

// 也可以封装 localStorage（可选，后续可能用到）
export const LocalStorage = {
  get: (name) => localStorage.getItem(name),
  set: (name, value) => localStorage.setItem(name, JSON.stringify(value)),
  remove: (name) => localStorage.removeItem(name),
  clear: () => localStorage.clear()
};